home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0"?>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0" version="1.0"
- xmlns="http://www.w3.org/TR/REC-html40"
- xmlns:s = "http://www.w3.org/1999/XMLSchema"
- xmlns:local="#local-functions">
-
- <xsl:param name="imageDir" select="'sdimages'"/>
- <xsl:param name="schemaName" select="' '"/>
- <xsl:output method="html" indent="no"/>
- <xsl:strip-space elements="*"/>
- <xsl:template match="/">
- <html>
- <head>
- <title>SchemaDOC - <xsl:value-of select="$schemaName"/> </title>
-
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-
- <style type="text/css">
- <!-- container for expanding/collapsing content -->
- .c {cursor:hand}
-
- <!-- button - contains +/-/nbsp -->
- .b {color:red; font-family:'Courier New'; font-weight:bold; text-decoration:none}
-
- <!-- element container -->
- .e {margin-left:1em; text-indent:-1em; margin-right:1em}
-
- <!-- comment or cdata -->
- .k {margin-left:1em; text-indent:-1em; margin-right:1em}
-
- <!-- tag -->
- .t {color:#000066}
-
- <!-- element +eleemnt-->
- .et {color:#0000FF}
-
- <!-- xdr default element attributes-->
- .xdra {color:#006600}
-
- <!-- tag in xsl namespace -->
- .xt {color:#990099}
-
- <!-- attribute in xml or xmlns namespace -->
- .ns {color:red}
-
- <!-- markup characters -->
- .m {color:blue}
-
- <!-- text node -->
- .tx {font-weight:bold}
-
- <!-- multi-line (block) cdata -->
- .db {text-indent:0px; margin-left:1em; margin-top:0px; margin-bottom:0px; padding-left:.3em; border-left:1px solid #CCCCCC; font:small Courier}
-
- <!-- single-line (inline) cdata -->
- .di {font:small Courier}
-
- <!-- DOCTYPE declaration -->
- .d {color:blue}
-
- <!-- pi -->
- .pi {color:blue}
-
- <!-- multi-line (block) comment -->
- .cb {text-indent:0px; margin-left:1em; margin-top:0px; margin-bottom:0px; padding-left:.3em; font:small Courier; color:#888888}
-
- <!-- single-line (inline) comment -->
- .ci {font:small Courier; color:#888888} PRE {margin:0px; display:inline} h1 { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 18pt; color: #000000} .heading { text-align:right;} .content { vertical-align: baseline; } .note { color:gray;}
-
- .names {font-family:' Arial, Helvetica'; font-weight:bold; font-size:12 }
- .source {font-family:'Courier New'; font-size:12 }
- .values {font-family:'Verdana, Arial, Helvetica'; font-size:12 }
- .headers {font-family:'Verdana, Arial, Helvetica'; font-weight:bold; font-size:12 }
- .descriptions {font-family:'Courier New'; color:redfont-size:12 }
-
-
- </style>
- <SCRIPT type="text/javascript">
- <xsl:comment>
- <![CDATA[
- // Detect and switch the display of CDATA and comments from an inline view
- // to a block view if the comment or CDATA is multi-line.
- function f(e)
- {
- // if this element is an inline comment, and contains more than a single
- // line, turn it into a block comment.
- if (e.className == "ci") {
- if (e.children(0).innerText.indexOf("\n") > 0)
- fix(e, "cb");
- }
-
- // if this element is an inline cdata, and contains more than a single
- // line, turn it into a block cdata.
- if (e.className == "di") {
- if (e.children(0).innerText.indexOf("\n") > 0)
- fix(e, "db");
- }
-
- // remove the id since we only used it for cleanup
- e.id = "";
- }
-
- // Fix up the element as a "block" display and enable expand/collapse on it
- function fix(e, cl)
- {
- // change the class name and display value
- e.className = cl;
- e.style.display = "block";
-
- // mark the comment or cdata display as a expandable container
- j = e.parentElement.children(0);
- j.className = "c";
-
- // find the +/- symbol and make it visible - the dummy link enables tabbing
- k = j.children(0);
- k.style.visibility = "visible";
- k.href = "#";
- }
-
- // Change the +/- symbol and hide the children. This function works on "element"
- // displays
- function ch(e)
- {
- // find the +/- symbol
- mark = e.children(0).children(0);
-
- // if it is already collapsed, expand it by showing the children
- if (mark.innerText == "+")
- {
- mark.innerText = "-";
- for (var i = 1; i < e.children.length; i++)
- e.children(i).style.display = "block";
- }
-
- // if it is expanded, collapse it by hiding the children
- else if (mark.innerText == "-")
- {
- mark.innerText = "+";
- for (var i = 1; i < e.children.length; i++)
- e.children(i).style.display="none";
- }
- }
-
- // Change the +/- symbol and hide the children. This function work on "comment"
- // and "cdata" displays
- function ch2(e)
- {
- // find the +/- symbol, and the "PRE" element that contains the content
- mark = e.children(0).children(0);
- contents = e.children(1);
-
- // if it is already collapsed, expand it by showing the children
- if (mark.innerText == "+")
- {
- mark.innerText = "-";
- // restore the correct "block"/"inline" display type to the PRE
- if (contents.className == "db" || contents.className == "cb")
- contents.style.display = "block";
- else contents.style.display = "inline";
- }
-
- // if it is expanded, collapse it by hiding the children
- else if (mark.innerText == "-")
- {
- mark.innerText = "+";
- contents.style.display = "none";
- }
- }
-
- // Handle a mouse click
- function cl()
- {
- e = window.event.srcElement;
-
- // make sure we are handling clicks upon expandable container elements
- if (e.className != "c")
- {
- e = e.parentElement;
- if (e.className != "c")
- {
- return;
- }
- }
- e = e.parentElement;
-
- // call the correct funtion to change the collapse/expand state and display
- if (e.className == "e")
- ch(e);
- if (e.className == "k")
- ch2(e);
- }
-
- // Erase bogus link info from the status window
- function h()
- {
- window.status=" ";
- }
-
- // Set the onclick handler
- document.onclick = cl;
-
- ]]>
- //
- </xsl:comment>
- </SCRIPT>
-
- </head>
- <body bgcolor="#FFFFFF" marginheight="0" marginwidth="0" topmargin="0" leftmargin="0">
- <xsl:apply-templates/>
- <center>
- <table border="0" WIDTH="90%" BGCOLOR="#eeeeee" >
- <tr>
- <td>
- <xsl:apply-templates mode="copy"/>
- </td>
- </tr>
- </table>
- </center>
-
- </body>
- </html>
- </xsl:template>
- <xsl:template match="s:schema">
- <table width="90%" border="0" cellspacing="4" cellpadding="2" align="center">
- <tr >
- <td bgcolor="#003366" colspan="2" >
- <font face="Arial,Helvetica" size="5" color="#FFFFFF">
-
- XML Schema - <xsl:value-of select="$schemaName"/>
- <!-- <xsl:if test="@targetNamespace">
- :
- <xsl:value-of select="@targetNamespace"/>
- </xsl:if> -->
-
- </font>
- </td>
- </tr>
- <xsl:if test=".//s:documentation">
- <tr>
- <td width="20%" class="headers" bgcolor="#CCCCCC" align="right" valign="top" wrap="true">
- Schema Comments:
- </td>
- <td class="descriptions" align="left" bgcolor="#EEEEEE" fgcolor="#FFAA00" valign="top">
- <font color="#990000">
- <xsl:apply-templates mode="schemacomments" select="./s:annotation"/></font>
- </td>
- </tr>
- </xsl:if>
- <tr>
- <td width="20%" class="headers" bgcolor="#CCCCCC" align="right" valign="top" wrap="true">
- <div class="headers">Schema has:</div>
- </td>
- <td class="values" bgcolor="eeeeee" align="left" valign="top">
- <xsl:number value="count(s:element) + count(s:complexType)" />
- element definitions,
- <xsl:if test="count(s:group)> 0" >
- <xsl:number value="count(s:group) "/>
- group definitions,
- </xsl:if>
-
- <xsl:number value="count(s:attribute) + count(s:attributeGroup)"/>
- global attribute definitions,
- <xsl:number value="count(s:element/s:attribute) + count(.//s:complexType/s:attribute)"/>
- element attribute definitions,
- <xsl:number value=" count(.//s:simpleType/@name)"/>
- datatype definitions.
- </td>
- </tr>
-
- <tr>
- <td width="20%" class="headers" bgcolor="#CCCCCC" align="right" valign="top" wrap="true">
- Posible root elements:
- </td>
- <td class="values" bgcolor="eeeeee" align="left" valign="top">
- <xsl:for-each select="s:element">
- <xsl:sort select="@name"/>
- <xsl:choose>
- <!-- Look for root elements -->
- <xsl:when test="/*[not(.//s:element[@ref=current()/@name])] and /*[not(.//s:element[@type=current()/@name])]">
- <B>
- <
- <A>
- <xsl:attribute name="href">#ELEMENT_<xsl:value-of select="@name"/>
- </xsl:attribute>
- <xsl:value-of select="@name"/>
- </A>
- >
- </B>
- <xsl:choose>
- <xsl:when test="@type | .//s:complexType | .//s:element"> †</xsl:when>
- <xsl:otherwise>(orphan?)</xsl:otherwise>
- </xsl:choose>
- <xsl:if test="(position()+1) mod 3 = 1">
- <br/>
- </xsl:if>
-
- </xsl:when>
- </xsl:choose>
- </xsl:for-each>
- </td>
- </tr>
- </table>
- <p/>
- <p/> <p/>
- <table width="90%" border="0" cellspacing="0" cellpadding="2" align="center">
- <tr >
- <td bgcolor="#003366" >
- <font face="Arial,Helvetica" size="5" color="#FFFFFF">
- Element list
- </font>
- </td>
- </tr>
- </table>
- <p/>
- <xsl:apply-templates mode="elementDescriptions" select="./s:element | ./s:complexType"/>
-
- <xsl:if test="./s:group">
- <table width="90%" border="0" cellspacing="0" cellpadding="2" align="center">
- <tr>
- <td bgcolor="#003366" >
- <font face="Arial,Helvetica" size="5" color="#FFFFFF">
- Element groups
- </font>
- </td>
- </tr>
- </table>
- <p/>
- <xsl:apply-templates mode="elementGroupsMode" select="./s:group"/>
- </xsl:if>
- <P/>
- <P/>
- <xsl:if test="./s:attributeGroup">
- <table width="90%" border="0" cellspacing="0" cellpadding="2" align="center">
- <tr>
- <td bgcolor="#8888ff" >
- <font face="Arial,Helvetica" size="5" color="#FFFFFF">
- Global Attributes
- </font>
- </td>
- </tr>
- </table>
-
- <xsl:apply-templates mode="attributeGroupsMode" select="./s:attributeGroup"/>
- </xsl:if>
-
-
- <P/>
- <P/>
- <p/>
- <table width="90%" border="0" cellspacing="0" cellpadding="2" align="center">
- <tr >
- <td bgcolor="#003366" >
- <font face="Arial,Helvetica" size="5" color="#FFFFFF">
- DataType definitions
- </font>
- </td>
- </tr>
- </table>
- <p/>
- <xsl:apply-templates mode="datatypeDefs" select=".//s:simpleType"/>
- <p/> <p/>
- <P/>
- <table width="90%" border="0" cellspacing="0" cellpadding="2" align="center">
- <tr>
- <td bgcolor="#bbbbbb" >
- <font face="Arial,Helvetica" size="5" color="#FFFFFF">
- <xsl:if test="@targetNamespace">
- <xsl:value-of select="@targetNamespace"/>
- </xsl:if>
- </font>
- Original Schema Source
-
- </td>
- </tr>
- </table>
- </xsl:template>
- <!--END s:schema***********************************************************-->
- <!--END s:schema***********************************************************-->
- <xsl:template mode="refSubElement" match="s:element">
- <xsl:if test="@ref">
- <A><xsl:attribute name="HREF">#ELEMENT_<xsl:value-of select="@ref"/></xsl:attribute><xsl:value-of select="@ref"/>
- </A>
- <xsl:if test="position()!=last()">, </xsl:if>
-
- </xsl:if>
-
- </xsl:template>
- <xsl:template mode="refSubElement" match="s:group">
- <xsl:if test="@ref">
- <A><xsl:attribute name="HREF">#GROUP_<xsl:value-of select="@ref"/></xsl:attribute><xsl:value-of select="@ref"/>
- </A>
- <xsl:if test="position()!=last()">, </xsl:if>
-
- </xsl:if>
-
- </xsl:template>
- <xsl:template mode="defSubElement" match="s:element | s:complexType">
-
- <xsl:if test="@type">
- <xsl:value-of select="@name"/>(
- <A><xsl:attribute name="HREF">http://www.w3.org/TR/xmlschema-2/#<xsl:value-of select="@type"/></xsl:attribute><xsl:value-of select="@type"/>
- </A>)
- <xsl:if test="position()!=last()">, </xsl:if>
-
- </xsl:if>
-
- </xsl:template>
- <xsl:template mode="subElement" match="s:element | s:complexType">
-
-
- <xsl:value-of select="@name"/>
- <xsl:if test="@type">(
- <A><xsl:attribute name="HREF">#ELEMENT_<xsl:value-of select="@type"/></xsl:attribute><xsl:value-of select="@type"/>
- </A>) </xsl:if>
- <xsl:if test="position()!=last()">, </xsl:if>
-
-
-
- </xsl:template>
-
- <xsl:template mode="elementName" match="s:complexType">
- Complex Type
- </xsl:template>
- <xsl:template mode="elementName" match="s:element">
- Element
- </xsl:template>
- <xsl:template mode="elementDescriptions" match="s:complexType | s:element" >
- <center>
- <table width="90%" cellspacing="0" cellpadding="2" border="0" >
- <tr bgcolor="#003366">
- <td>
- <font face="Arial,Helvetica" color="#FFFFFF">
- <xsl:apply-templates mode="elementName" select="."/>
- <A>
- <xsl:attribute name="name">ELEMENT_<xsl:value-of select="@name"/>
- </xsl:attribute>
- <b>
- <xsl:value-of select="@name"/>
- </b>
- </A>
- </font>
- </td>
- </tr>
- </table>
- </center>
- <table width="90%" cellspacing="0" cellpadding="0" border="0" bordercolor="#FFFFFF" bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF" align="center">
- <tr>
- <td width="3%" bgcolor="#4444ff" align="left" valign="middle"> †</td>
- <td width="97%" align="left" valign="top">
- <table width="100%" cellspacing="3" cellpadding="1" border="0" bordercolor="#FFFFFF" align="left">
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- diagram
- </td>
- <td align="left" valign="top" bgcolor="#eeeeeeee" >
- <img>
- <xsl:attribute name="SRC">sdimages/<xsl:value-of select="@name"/>.gif
- </xsl:attribute>
- </img>
- </td>
- </tr>
- <xsl:if test=".//s:documentation">
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- description
- </td>
- <td width="85%" class="descriptions" align="left" bgcolor="#eeeeeeee" wrap="true">
- <font color="#990000">
- <xsl:apply-templates mode="schemacomments" select=".//s:annotation"/></font>
- </td>
- </tr>
- </xsl:if>
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- attributes
- </td>
- <td width="85%" class="values" bgcolor="#eeeeeeee">
- <xsl:apply-templates mode="glanceAttrib" select=".//s:attribute | .//s:attributeGroup"/>
- </td>
- </tr>
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- uses
- </td>
- <td width="85%" class="values" bgcolor="#eeeeeeee">
- <xsl:choose>
- <xsl:when test=".//s:element/@ref | .//s:group">
- <xsl:apply-templates mode="refSubElement" select=".//s:element | .//s:group"/>
- </xsl:when>
- <xsl:otherwise>
- Does not reference other elements.
- </xsl:otherwise>
- </xsl:choose>
- </td>
- </tr>
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- defines localy
- </td>
- <td width="85%" class="values" bgcolor="#eeeeeeee">
- <xsl:choose>
- <xsl:when test=".//s:element/@type">
- <xsl:apply-templates mode="defSubElement" select=".//s:element"/>
- </xsl:when>
- <xsl:otherwise>
- Does not define any local elements
- </xsl:otherwise>
- </xsl:choose>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table width="90%" cellspacing="0" cellpadding="0" border="0" bordercolor="#FFFFFF" bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF" align="center">
- <tr>
- <td width="3%" bgcolor="#6666ff" align="center" valign="top"> †</td>
- <td width="97%" align="center" valign="left">
- <table width="100%" cellspacing="3" cellpadding="1" border="0" align="left" valign="top" bordercolor="#FFFFFF" bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF">
- <!-- Find the parents -->
- <TR>
- <TD width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">used by</TD>
- <TD class="values" bgcolor="#eeeeee" align="left" valign="top">
- <xsl:choose>
-
- <xsl:when test="../s:element[.//s:element[@ref = current()/@name ]] | ../s:element[.//s:element[@type = current()/@name ]]">
- <xsl:for-each select="../s:element[.//s:element[@ref = current()/@name ]] | ../s:element[.//s:element[@type = current()/@name ]]">
- <xsl:sort select="@name"/>
- <A class="element-link">
- <xsl:attribute name="HREF">
- #ELEMENT_
- <xsl:value-of select="@name"/>
- </xsl:attribute>
- <xsl:value-of select="@name"/>
- </A>
- †
- <xsl:if test="current()[position()!=last()]">,</xsl:if>
- </xsl:for-each>
- </xsl:when>
- <xsl:otherwise>
- <xsl:choose>
- <xsl:when test=".//s:element">
- <SPAN class="note">Not used by other elements. Possible root element.</SPAN>
- </xsl:when>
- <xsl:otherwise>
- <SPAN class="note">Not used by other elements. Probably an orphan.</SPAN>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:otherwise>
- </xsl:choose>
- </TD>
- </TR>
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- content
- </td>
- <td width="85%" class="values" bgcolor="#eeeeeeee">
- <xsl:apply-templates mode="contentModel" select="."/>
- </td>
- </tr>
- <!--
- <tr>
- <td width="15%" bgcolor="#CCCCCC" align="right" valign="top">
- <span class="names">order</span>
- </td>
- <td width="85%" class="values" bgcolor="#eeeeee" >
- <xsl:if test=".//s:sequence">sequence</xsl:if>
- <xsl:if test=".//s:group">
- <xsl:apply-templates mode="order" select=".//s:group"/>
- </xsl:if>
- </td>
- </tr>
- -->
- <xsl:if test="@type">
- <tr>
- <td width="15%" bgcolor="#CCCCCC" align="right" valign="top">
- <span class="names">type</span>
- </td>
- <td width="85%" class="values" bgcolor="#eeeeee" >
- <xsl:value-of select="@type" /> </td>
- </tr>
- </xsl:if>
- </table>
- </td>
- </tr>
- </table>
- <xsl:if test=".//s:attribute">
- <table width="90%" cellspacing="0" cellpadding="0" border="0" bordercolor="#FFFFFF" bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF" align="center">
- <tr>
- <td width="3%" bgcolor="#8888ff" align="left" valign="top"> †</td>
- <td width="97%" align="left" valign="top">
- <table width="100%" cellspacing="3" cellpadding="1" border="0" align="left" valign="top" bordercolor="#FFFFFF" bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF">
- <tr>
- <th width="15%" bgcolor="#CCCCCC" align="right" valign="top">
- <span class="headers">Attribute</span>
- </th>
-
- <th width="20%" bgcolor="#CCCCCC" align="left" >
- <span class="headers">Datatype</span>
- </th>
- <th width="20%" bgcolor="#CCCCCC" align="left" >
- <span class="headers">Use</span>
- </th>
- <th width="25%" bgcolor="#CCCCCC" align="left" >
- <span class="headers">Values</span>
- </th>
- <th width="20%" bgcolor="#CCCCCC" align="left" >
- <span class="headers">Default</span>
- </th>
- </tr>
- <xsl:apply-templates mode="detailAttrib" select=".//s:attribute"/>
- </table>
- </td>
- </tr>
- </table>
- </xsl:if>
- <table width="90%" cellspacing="0" cellpadding="0" border="0" bordercolor="#FFFFFF" bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF" align="center">
- <tr>
- <td width="3%" bgcolor="#bbbbbb" align="left" valign="top"> †</td>
- <td width="97%" align="left" valign="top">
- <table width="100%" cellspacing="3" cellpadding="1" border="0" align="left" valign="top" bordercolor="#FFFFFF" bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF">
-
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- source
- </td>
- <td width="85%" class="source" bgcolor="#eeeeeeee" align="left" valign="top">
- <xsl:apply-templates mode="copy" select="current()"/>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <p/>
- </xsl:template>
-
- <xsl:template mode="elementGroupsMode" match="s:group" >
- <center>
- <table width="90%" cellspacing="0" cellpadding="2" border="0" >
- <tr bgcolor="#4444FF">
- <td>
- <font face="Arial,Helvetica" color="#FFFFFF">
- Element group
- <A>
- <xsl:attribute name="name">GROUP_<xsl:value-of select="@name"/>
- </xsl:attribute>
- <b>
- <xsl:value-of select="@name"/>
- </b>
- </A>
- </font>
- </td>
- </tr>
- </table>
- </center>
- <table width="90%" cellspacing="0" cellpadding="0" border="0" bordercolor="#FFFFFF" bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF" align="center">
- <tr>
- <td width="3%" bgcolor="#4444FF" align="left" valign="middle"> †</td>
- <td width="97%" align="left" valign="top">
- <table width="100%" cellspacing="3" cellpadding="1" border="0" bordercolor="#FFFFFF" align="left">
-
- <xsl:if test=".//s:documentation">
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- description
- </td>
- <td width="85%" class="descriptions" align="left" bgcolor="#eeeeeeee" wrap="true">
- <font color="#990000">
- <xsl:apply-templates mode="schemacomments" select=".//s:annotation"/></font>
- </td>
- </tr>
- </xsl:if>
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- contains
- </td>
- <td width="85%" class="values" bgcolor="#eeeeeeee">
- <xsl:choose>
- <xsl:when test=".//s:element">
- <xsl:apply-templates mode="subElement" select=".//s:element"/>
- </xsl:when>
- <xsl:otherwise>
- Does not reference other elements.
- </xsl:otherwise>
- </xsl:choose>
- </td>
- </tr>
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- content model
- </td>
- <td width="85%" class="descriptions" align="left" bgcolor="#eeeeeeee" wrap="true">
- <font color="#990000">
- <xsl:apply-templates mode="contentModel" select="."/></font>
- </td>
- </tr>
- <TR>
- <TD width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">used by</TD>
- <TD class="values" bgcolor="#eeeeee" align="left" valign="top">
- <xsl:choose>
-
- <xsl:when test="../s:complexType[.//s:group[@ref = current()/@name ]] | ../s:complexType[.//s:group[@type = current()/@name ]]">
- <xsl:for-each select="../s:complexType[.//s:group[@ref = current()/@name ]] | ../s:complexType[.//s:group[@type = current()/@name ]]">
- <xsl:sort select="@name"/>
- <A class="element-link">
- <xsl:attribute name="HREF">
- #ELEMENT_
- <xsl:value-of select="@name"/>
- </xsl:attribute>
- <xsl:value-of select="@name"/>
- </A>
- †
- <xsl:if test="current()[position()!=last()]">,</xsl:if>
- </xsl:for-each>
- </xsl:when>
- <xsl:otherwise>
- <xsl:choose>
- <xsl:when test=".//s:element">
- <SPAN class="note">Not used.</SPAN>
- </xsl:when>
- <xsl:otherwise>
- <SPAN class="note">Not used.</SPAN>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:otherwise>
- </xsl:choose>
- </TD>
- </TR>
-
-
-
- </table>
- </td>
- </tr>
- </table>
- <table width="90%" cellspacing="0" cellpadding="0" border="0" bordercolor="#FFFFFF" bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF" align="center">
- <tr>
- <td width="3%" bgcolor="#bbbbbb" align="left" valign="top"> †</td>
- <td width="97%" align="left" valign="top">
- <table width="100%" cellspacing="3" cellpadding="1" border="0" align="left" valign="top" bordercolor="#FFFFFF" bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF">
-
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- source
- </td>
- <td width="85%" class="source" bgcolor="#eeeeeeee" align="left" valign="top">
- <xsl:apply-templates mode="copy" select="current()"/>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
-
- <p/>
- </xsl:template>
- <xsl:template mode="glanceAttrib" match="s:attribute ">
- <xsl:value-of select="@name"/>
- </xsl:template>
- <xsl:template mode="glanceAttrib" match="s:attributeGroup">
- <A class="element-link">
- <xsl:attribute name="HREF">
- #ATTRIBUTEGROUP_
- <xsl:value-of select="@ref"/>
- </xsl:attribute>
- <xsl:value-of select="@ref"/>
- </A>
- </xsl:template>
-
- <xsl:template mode="detailAttrib" match="s:attribute">
- <tr>
- <td width="15%" bgcolor="#CCCCCC" align="right" valign="top">
- <span class="headers">
- <b>
- <xsl:value-of select="@name"/>
- </b>
- </span>
- </td>
-
- <td width="20%" class="values" bgcolor="#eeeeee" align="left" valign="top">
- <xsl:if test="@type">
- <A ><xsl:attribute name="href">http://www.w3.org/TR/xmlschema-2/#<xsl:value-of select="@type"/></xsl:attribute>
- <xsl:value-of select="@type"/></A>
- </xsl:if>
- <xsl:if test="./s:simpleType">
- <A ><xsl:attribute name="href">http://www.w3.org/TR/xmlschema-2/#<xsl:value-of select="./s:simpleType/@base"/></xsl:attribute>
- <xsl:value-of select="./s:simpleType/@base"/></A>
-
- </xsl:if>
- </td>
- <td width="20%" class="values" bgcolor="#eeeeee" align="left" valign="top">
- <xsl:choose>
- <xsl:when test="@use">
- <xsl:value-of select="@use"/>
- </xsl:when>
- <xsl:otherwise>
- optional (default)
- </xsl:otherwise>
- </xsl:choose>
- </td>
- <td width="25%" class="values" bgcolor="#eeeeee" align="left" valign="top">
- <xsl:for-each select=".//s:enumeration">
- <xsl:value-of select="@value" />
- <xsl:if test="position()!=last()"> | </xsl:if>
- </xsl:for-each>
- </td>
-
- <td width="20%" class="values" bgcolor="#eeeeee" align="left" valign="top">
-
- <xsl:value-of select="@value"/>
- </td>
-
-
- </tr>
- </xsl:template>
-
- <xsl:template mode="attributeGroupsMode" match="s:attributeGroup">
- <p/>
- <center>
- <table width="90%" cellspacing="0" cellpadding="2" border="0" >
- <tr bgcolor="#8888ff">
- <td>
- <font face="Arial,Helvetica" color="#FFFFFF">
- Attribute Group:
- <A>
- <xsl:attribute name="name">ATTRIBUTEGROUP_<xsl:value-of select="@name"/>
- </xsl:attribute>
- <b>
- <xsl:value-of select="@name"/>
- </b>
- </A>
- </font>
- </td>
- </tr>
- </table>
- </center>
-
-
- <table width="90%" cellspacing="0" cellpadding="0" border="0" bordercolor="#FFFFFF" bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF" align="center">
- <tr>
- <td width="3%" bgcolor="#8888ff" align="left" valign="top"> †</td>
- <td width="97%" align="left" valign="top">
- <table width="100%" cellspacing="3" cellpadding="1" border="0" align="left" valign="top" bordercolor="#FFFFFF" bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF">
- <tr>
- <th width="15%" bgcolor="#CCCCCC" align="right" valign="top">
- <span class="headers">Attribute</span>
- </th>
-
- <th width="20%" bgcolor="#CCCCCC" align="left" >
- <span class="headers">Datatype</span>
- </th>
- <th width="20%" bgcolor="#CCCCCC" align="left" >
- <span class="headers">Use</span>
- </th>
- <th width="25%" bgcolor="#CCCCCC" align="left" >
- <span class="headers">Values</span>
- </th>
- <th width="20%" bgcolor="#CCCCCC" align="left" >
- <span class="headers">Default</span>
- </th>
- </tr>
- <xsl:apply-templates mode="detailAttrib" select=".//s:attribute"/>
- </table>
- </td>
- </tr>
- </table>
- </xsl:template>
- <!-- END detailattribute TYPE -->
-
- <xsl:template mode="datatypeDefs" match="s:simpleType">
- <xsl:if test="@name">
- <p/>
- <center>
- <table width="90%" cellspacing="0" cellpadding="2" border="0" >
- <tr bgcolor="#AAAAff">
- <td>
- <font face="Arial,Helvetica" color="#FFFFFF">
- Datatype
- <A>
- <xsl:attribute name="name">DATATYPE_<xsl:value-of select="@name"/>
- </xsl:attribute>
- <b>
- <xsl:value-of select="@name"/>
- </b>
- </A>
- </font>
- <xsl:if test="@abstract='true'">
- <font face="Arial,Helvetica" color="#FFFFFF">
- <i> abstract </i>
- </font>
- </xsl:if>
- </td>
- <xsl:if test="@id">
- <td align="left">
- <font face="Arial,Helvetica" color="#FFFFFF">
- id: <xsl:value-of select="@id"/>
- </font>
- </td>
- </xsl:if>
-
- </tr>
- </table>
- <table width="90%" cellspacing="0" cellpadding="0" border="0" bordercolor="#FFFFFF" bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF" align="center">
- <tr>
- <td width="3%" bgcolor="#AAAAFF" align="left" valign="middle"> †</td>
- <td width="97%" align="left" valign="top">
-
- <table width="100%" cellspacing="3" cellpadding="1" border="0" bordercolor="#FFFFFF" align="left">
-
- <xsl:if test=".//s:documentation">
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- description
- </td>
- <td width="85%" class="descriptions" align="left" bgcolor="#eeeeeeee" wrap="true">
- <font color="#990000">
- <xsl:apply-templates mode="schemacomments" select=".//s:annotation"/></font>
- </td>
- </tr>
- </xsl:if>
- <xsl:if test="@base">
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- dt base
- </td>
- <td width="85%" class="values" align="left" bgcolor="#eeeeeeee" wrap="true">
- <xsl:value-of select="@base" />
- </td>
- </tr>
- </xsl:if>
-
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- derivedBy
- </td>
- <td width="85%" class="values" align="left" bgcolor="#eeeeeeee" wrap="true">
- <xsl:choose>
- <xsl:when test="@derivedBy">
- <xsl:value-of select="@derivedBy" />
- </xsl:when>
- <xsl:otherwise>
- <i>restriction (default)</i>
- </xsl:otherwise>
- </xsl:choose>
-
- </td>
- </tr>
-
-
- <xsl:if test="./s:precision">
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- precision
- </td>
- <td width="85%" class="values" align="left" bgcolor="#eeeeeeee" wrap="true">
- <xsl:value-of select="./s:precision/@value" />
- </td>
- </tr>
- </xsl:if>
-
-
- <xsl:if test="./s:scale">
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- scale
- </td>
- <td width="85%" class="values" align="left" bgcolor="#eeeeeeee" wrap="true">
- <xsl:value-of select="./s:scale/@value" />
- </td>
- </tr>
- </xsl:if>
- <xsl:if test="./s:encoding">
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- encoding
- </td>
- <td width="85%" class="values" align="left" bgcolor="#eeeeeeee" wrap="true">
- <xsl:value-of select="./s:encoding/@value" />
- </td>
- </tr>
- </xsl:if>
- <xsl:if test="./s:length">
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- length
- </td>
- <td width="85%" class="values" align="left" bgcolor="#eeeeeeee" wrap="true">
- <xsl:value-of select="./s:length/@value" />
- </td>
- </tr>
- </xsl:if>
- <xsl:if test="./s:duration">
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- duration
- </td>
- <td width="85%" class="values" align="left" bgcolor="#eeeeeeee" wrap="true">
- <xsl:value-of select="./s:duration/@value" />
- </td>
- </tr>
- </xsl:if>
- <xsl:if test="./s:period">
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- period
- </td>
- <td width="85%" class="values" align="left" bgcolor="#eeeeeeee" wrap="true">
- <xsl:value-of select="./s:period/@value" />
- </td>
- </tr>
- </xsl:if>
- <xsl:if test="./s:pattern">
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- pattern
- </td>
- <td width="85%" class="values" align="left" bgcolor="#eeeeeeee" wrap="true">
- <xsl:value-of select="./s:pattern/@value" />
- </td>
- </tr>
- </xsl:if>
- <xsl:if test="./s:enumeration">
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- enumeration
- </td>
- <td width="85%" class="values" align="left" bgcolor="#eeeeeeee" wrap="true">
- <xsl:for-each select="./s:enumeration" >
- <xsl:value-of select="@value" />
- <xsl:if test="position()!=last()"> | </xsl:if>
- </xsl:for-each>
- </td>
- </tr>
- </xsl:if>
- <xsl:if test="./s:minExclusive | ./s:minInclusive | ./s:maxExclusive | ./s:maxInclusive ">
- <tr>
- <td width="15%" class="names" bgcolor="#CCCCCC" align="right" valign="top">
- range
- </td>
- <td width="85%" class="values" align="left" bgcolor="#eeeeeeee" wrap="true">
-
- </td>
- </tr>
- </xsl:if>
-
-
- </table>
- </td>
- </tr>
- </table>
-
-
- </center>
- </xsl:if>
- </xsl:template>
-
- <xsl:template mode="contentModel" match="s:complexType | s:element">
- <xsl:choose>
- <xsl:when test="@content">
- <xsl:value-of select="@content"/>
- </xsl:when>
- <xsl:otherwise>
- sequence <i> (default) </i>
- </xsl:otherwise>
- </xsl:choose>
-
- </xsl:template>
-
- <xsl:template mode="contentModel" match="s:group">
- <xsl:choose>
- <xsl:when test="/s:sequence">
- sequence
- </xsl:when>
- <xsl:when test="/s:choice">
- choice
- </xsl:when>
- <xsl:when test="/s:all">
- all
- </xsl:when>
-
- <xsl:otherwise>
- sequence <i> (default) </i>
- </xsl:otherwise>
- </xsl:choose>
-
- </xsl:template>
- <xsl:template mode="contentModel" match="s:type">
- <xsl:value-of select="@content"/>
- </xsl:template>
-
- <xsl:template mode="order" match="s:group">
- <xsl:value-of select="@order"/>
- </xsl:template>
-
- <xsl:template mode="order" match="s:element">
- <xsl:value-of select="@order"/>
- </xsl:template>
-
-
-
- <xsl:template match="s:appInfo" mode="schemacomments">
-
- <xsl:choose>
- <xsl:when test="not(@usage='USAGE')">
- <xsl:value-of select="text()"/>
- </xsl:when>
- </xsl:choose>
- <!--<xsl:apply-templates mode="comments" />-->
- </xsl:template>
-
- <xsl:template match="s:description" mode="usagecomments">
- <xsl:choose>
- <xsl:when test="@usage='USAGE'">
- <xsl:value-of select="text()"/>
- </xsl:when>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="s:description | s:appInfo" mode="schemacomments">
- <xsl:value-of select="text()"/>
- <BR/>
- </xsl:template>
-
- <!--
- <xsl:template mode="copy" match="*|@*|comment()|processing-instruction()|text()">
- <xsl:copy>
- <xsl:apply-templates mode="copy"
- select="*|@*|comment()|processing-instruction()|text()"/>
- </xsl:copy>
- </xsl:template>
- -->
- <!-- ***********************SOURCE part...copied from lotus*****************-->
-
- <!-- Templates for each node type follows. The output of each template has a similar structure
- to enable script to walk the result tree easily for handling user interaction. -->
-
- <!-- Template for pis not handled elsewhere -->
- <xsl:template mode="copy" match="processing-instruction()">
- <DIV class="e">
- <SPAN class="b"> </SPAN>
- <SPAN class="m"><?</SPAN><SPAN class="pi"><xsl:value-of select="name(.)"/> <xsl:value-of select="."/></SPAN><SPAN class="m">?></SPAN>
- </DIV>
- </xsl:template>
-
- <!-- Template for the XML declaration. Need a separate template because the pseudo-attributes
- are actually exposed as attributes instead of just element content, as in other pis
- <xsl:template mode="copy" match="processing-instruction('xml')">
- <DIV class="e">
- <SPAN class="b"> </SPAN>
- <SPAN class="m"><?</SPAN><SPAN class="pi">xml <xsl:for-each select="@*"><xsl:value-of select="name(.)"/>="<xsl:value-of select="."/>" </xsl:for-each></SPAN><SPAN class="m">?></SPAN>
- </DIV>
- </xsl:template>
- -->
-
- <!-- Template for attributes not handled elsewhere -->
- <xsl:template mode="copy" match="@*"><SPAN class="t"><xsl:text> </xsl:text><xsl:value-of select="name(.)"/></SPAN><SPAN class="m">="</SPAN><B><xsl:value-of select="."/></B><SPAN class="m">"</SPAN></xsl:template>
-
- <!-- Template for attributes in the xmlns or xml namespace
- <xsl:template mode="copy"match="@xmlns:*|@xmlns|@xml:*"><SPAN class="ns"> <xsl:value-of select="name(.)"/></SPAN><SPAN class="m">="</SPAN><B class="ns"><xsl:value-of select="."/></B><SPAN class="m">"</SPAN></xsl:template>
- -->
-
- <!-- Template for text nodes -->
- <xsl:template mode="copy" match="text()">
- <xsl:choose><xsl:when test="name(.) = '#cdata-section'"><xsl:call-template name="cdata"/></xsl:when>
- <xsl:otherwise><DIV class="e">
- <SPAN class="b"> </SPAN>
- <SPAN class="tx"><xsl:value-of select="."/></SPAN>
- </DIV></xsl:otherwise></xsl:choose>
- </xsl:template>
-
- <!-- Template for comment nodes -->
- <xsl:template mode="copy" match="comment()">
- <DIV class="k">
- <SPAN><A class="b" onclick="return false" onfocus="h()" STYLE="visibility:hidden">-</A> <SPAN class="m"><!--</SPAN></SPAN>
- <SPAN id="clean" class="ci"><PRE><xsl:value-of select="."/></PRE></SPAN>
- <SPAN class="b"> </SPAN> <SPAN class="m">--></SPAN>
- <SCRIPT>f(clean);</SCRIPT></DIV>
- </xsl:template>
-
- <!-- Template for cdata nodes -->
- <xsl:template name="cdata">
- <DIV class="k">
- <SPAN><A class="b" onclick="return false" onfocus="h()" STYLE="visibility:hidden">-</A> <SPAN class="m"><![CDATA[</SPAN></SPAN>
- <SPAN id="clean" class="di"><PRE><xsl:value-of select="."/></PRE></SPAN>
- <SPAN class="b"> </SPAN> <SPAN class="m">]]></SPAN>
- <SCRIPT>f(clean);</SCRIPT></DIV>
- </xsl:template>
-
- <!-- Template for elements not handled elsewhere (leaf nodes) -->
- <xsl:template mode="copy" match="*">
- <DIV class="e"><DIV STYLE="margin-left:1em;text-indent:-2em">
- <SPAN class="b"> </SPAN>
- <SPAN class="m"><</SPAN><SPAN class="t"><xsl:value-of select="name(.)"/></SPAN> <xsl:apply-templates mode="copy" select="@*"/><SPAN class="m"> /></SPAN>
- </DIV></DIV>
- </xsl:template>
-
- <!-- Template for elements with comment, pi and/or cdata children
- <xsl:template mode="copy" match="*[comment() or processing-instruction() or cdata()]">
- <DIV class="e">
- <DIV class="c"><A href="#" onclick="return false" onfocus="h()" class="b">-</A> <SPAN class="m"><</SPAN><SPAN><xsl:attribute name="class"><xsl:if test="xsl:*">x</xsl:if>t</xsl:attribute><xsl:value-of select="name(.)"/></SPAN><xsl:apply-templates mode="copy" select="@*"/> <SPAN class="m">></SPAN></DIV>
- <DIV><xsl:apply-templates mode="copy" />
- <DIV><SPAN class="b"> </SPAN> <SPAN class="m"></</SPAN><SPAN><xsl:attribute name="class"><xsl:if test="xsl:*">x</xsl:if>t</xsl:attribute><xsl:value-of select="name(.)"/></SPAN><SPAN class="m">></SPAN></DIV>
- </DIV></DIV>
- </xsl:template> -->
-
- <!-- Template for elements with only text children -->
- <xsl:template mode="copy" match="*[text() and not(comment() or processing-instruction() or *)]">
- <DIV class="e"><DIV STYLE="margin-left:1em;text-indent:-2em">
- <SPAN class="b"> </SPAN> <SPAN class="m"><</SPAN><SPAN class="t"><xsl:value-of select="name(.)"/></SPAN><xsl:apply-templates mode="copy" select="@*"/>
- <SPAN class="m">></SPAN><SPAN class="tx"><xsl:value-of select="."/></SPAN><SPAN class="m"></</SPAN><SPAN class="t"><xsl:value-of select="name(.)"/></SPAN><SPAN class="m">></SPAN>
- </DIV></DIV>
- </xsl:template>
-
- <!-- Template for elements with element children -->
- <xsl:template mode="copy" match="*[*]">
- <DIV class="e">
- <DIV class="c" STYLE="margin-left:1em;text-indent:-2em"><A href="#" onclick="return false" onfocus="h()" class="b">-</A> <SPAN class="m"><</SPAN><SPAN class="t"><xsl:value-of select="name(.)"/></SPAN><xsl:apply-templates mode="copy" select="@*"/><SPAN class="m">></SPAN></DIV>
- <DIV><xsl:apply-templates mode="copy" />
- <DIV><SPAN class="b"> </SPAN><SPAN class="m"></</SPAN><SPAN class="t"><xsl:value-of select="name(.)"/></SPAN><SPAN class="m">></SPAN></DIV>
- </DIV></DIV>
- </xsl:template>
- function writeEnumeration(_contextNodeList)
- {
- var __this = _contextNodeList.item(0);
- return formatEnum(__this, __this.selectSingleNode("../@default"));
- }
-
- </xsl:stylesheet>
-